Summary

Synchronous communication waits for an immediate response. Asynchronous communication decouples producer and consumer through messages, events, or background work.

Interview Points

  • Sync is simple and good for immediate user-facing queries.
  • Async improves decoupling, resilience, and burst absorption.
  • Async adds eventual consistency, retries, ordering, and observability challenges.
  • Choose based on user expectation and workflow semantics.
  • Many systems combine both.

2-3 Minute Interview Script

“Synchronous communication means the caller waits for the callee, like an HTTP request. It is simple and fits flows where the user needs an immediate answer.

Asynchronous communication means the caller submits work and the processing happens later, usually through a queue or event stream. This decouples services and helps absorb bursts, but it introduces eventual consistency and more complex failure handling.

For example, placing an order may synchronously validate the cart and reserve payment, then asynchronously send email, update analytics, and trigger fulfillment workflows.

Interview answer: use sync when the caller needs an immediate decision; use async when you want decoupling, resilience, or background processing.”

Follow-Ups

  • How do users track async progress?
  • What failure modes does async introduce?